# -*- coding:UTF-8 -*-

u'''
******************************************************************************
* 文  件：GDC03849.py
* 概  述：ht1621x芯片驱动GDC03849段式液晶的程序,显示范围-99.99-999.99
* 版  本：V0.10
* 作  者：Robin Chen
* 日  期：2018年5月9日
* 历  史： 日期             编辑           版本         记录
          2018年5月9日    Robin Chen    V0.10       创建文件
******************************************************************************'''

from PYBNano.DisplayModule.LCD.HT1621B.ht1621x import *

# 16进制湿度字库(0~9,包含湿度文字、 小数点及湿度单位显示)
NUMCODE_RH_HEX = ((0x0D,0x0F),\
                    (0x08,0x06),\
                    (0x0B,0x0D),\
                    (0x0A,0x0F),\
                    (0x0E,0x06),\
                    (0x0E,0x0B),\
                    (0x0F,0x0B),\
                    (0x08,0x0E),\
                    (0x0F,0x0F),\
                    (0x0E,0x0F))


# 16进制温度字库(0~9,包含温度文字、 小数点及温度单位显示)
NUMCODE_TEMP_HEX = ((0x0F,0x0D),\
                  (0x06,0x08),\
                  (0x0B,0x0E),\
                  (0x0F,0x0A),\
                  (0x06,0x0B),\
                  (0x0D,0x0B),\
                  (0x0D,0x0F),\
                  (0x07,0x08),\
                  (0x0F,0x0F),\
                  (0x0F,0x0B))


u'''*************************************************************************
* 功   能：显示温度值
* 说   明：将进制制浮点数温度值以两位小数的形式显示出来
* 输入参数：
          data: 测量到的温度值 | flot | de | 000.00~999.99 | eg. 24.543
* 输出参数：None
* 返 回 值：True
**************************************************************************'''
def viewTemp(data):
    val = ()
    stda= ('00000' + str(int(data*100)))[-5::]
    stda=list(stda)[::-1]
    for i in stda:
        val=val + NUMCODE_TEMP_HEX[int(i)]
    HT1621xWrAllData(0x0A, val)
    return True


u'''*************************************************************************
* 功   能：显示湿度值
* 说   明：将进制制浮点数湿度值以两位小数的形式显示出来
* 输入参数：
          data: 测量到的湿度值 | flot | de | 000.00~999.99 | eg. 24.543
* 输出参数：None
* 返 回 值：True
**************************************************************************'''
def viewRH(data):
    val=()
    stda= ('00000' + str(int(data*100)))[-5::]
    for i in stda:
        val=val + NUMCODE_RH_HEX[int(i)]
    HT1621xWrAllData(0x00, val)
    return True



u'''*************************************************************************
* 功   能：显示所有显示字段
* 说   明：
* 输入参数：NONE
* 输出参数：None
* 返 回 值：True
**************************************************************************'''
def LCDALLSHOW():
    ALLSHOW(0x00,20)
    return True


u'''*************************************************************************
* 功   能：清除屏幕全部显示
* 说   明：
* 输入参数：None
* 输出参数：None
* 返 回 值：True
**************************************************************************'''
def LCDALLCLEAR():
    ALLCLEAR(0x00,20)
    return True


u'''*************************************************************************
* 功   能：清除屏幕温度区域显示
* 说   明：
* 输入参数：None
* 输出参数：None
* 返 回 值：True
**************************************************************************'''
def TEMPCLEAR():
    ALLCLEAR(0x0A,10)
    return True

u'''*************************************************************************
* 功   能：清除屏幕湿度区显示
* 说   明：
* 输入参数：None
* 输出参数：None
* 返 回 值：True
**************************************************************************'''
def RHCLEAR():
    ALLCLEAR(0x00, 10)
    return True


#初始化LCD
lcdinit()
LCDALLSHOW()
sleep(1)
LCDALLCLEAR()
